Dans le monde de Rust, le compilateur est votre première ligne de défense, détectant les fuites de mémoire et les incompatibilités de type avant même qu'elles ne surviennent. Toutefois, le compilateur ne peut pas connaître votre intention. C'est là que les tests automatisés interviennent comme un « filet de sécurité » pour la correction logique.
1. Le duo complémentaire
Alors que le système de types assure l'intégrité structurelle, les tests vérifient le comportement fonctionnel. Dans un projet de bibliothèque, le compilateur s'assure que vous ne passez pas une chaîne à une fonction mathématique, mais seul un test garantit que $f(x) = y$ produit le résultat attendu.
2. Cycle de vie standard
Les tests Rust suivent une chorégraphie rigoureuse en trois étapes :
- Préparation : Initialiser les données (par exemple, créer une instance de bibliothèque).
- Exécution : Exécuter la logique spécifique qui fait l'objet de l'interrogation.
- Vérification : Vérifier l'état en utilisant des macros telles que
assert_eq!.
La chaîne d'outils intégrée prend en charge tests-doc (exemples exécutables dans la documentation) et tests de benchmark afin de garantir que votre code reste aussi rapide que l'éclair.